<?php
// +----------------------------------------------------------------------
// | 幕小铺
// +----------------------------------------------------------------------
// | 版权所有 2016~2020 幕小铺科技（大连）有限公司
// +----------------------------------------------------------------------
// | 2020/03/14
// +----------------------------------------------------------------------

namespace app\erp\admin;

use app\admin\controller\Admin;
use think\Db;
use app\common\builder\ZBuilder;
/**
 * 门店轮播图
 * @package app\cms\admin
 */
class StoreBanner extends Admin
{
	/**
     * 首页
     * @author shiqiang
     * @return mixed
     */
    public function index(){	
		cookie('__forward__', $_SERVER['REQUEST_URI']);
		
		// 获取筛选
        $map = $this->getMap();
		
		//数据获取
        $data = input();
		
		$uid = UID;//后台管理员ID
		$sotre_user = model('app\user\model\User') -> find($uid);//获取列表
		
		if($sotre_user['store_uid'] > 0){
			$map['store_id'] = $sotre_user['store_id'];
		}
		
		// 数据列表
        $data_list = model('ErpStoreBanner', 'model') -> where($map) -> order('sort asc, create_time desc') -> paginate();
		foreach($data_list as $key => $value){
			$data_list[$key]['store'] 	= $value['store_id'] == 0 ? '全门店通用' : get_nick_name('1','ErpStore','id',$value['store_id'],'title');
		}
		
		// 使用ZBuilder快速创建数据表格
        return ZBuilder::make('table')
            ->setPageTitle('轮播图') // 设置页面标题
            ->setPrimaryKey('id') // 设置主键名为username
            ->setTableName('erp_store_banner') // 设置数据表名
            ->addColumns([ // 批量添加列
                // ['__INDEX__', '序号'],
                ['id', '图片id'],
                ['store', '关联门店'],
                ['img_url', '图片', 'img_url'],
                ['type', '所属类别', 'text','',config('banner_type')],
                ['sort', '排序', 'text.edit'],
				['banner_status', '是否显示', 'switch'],
                ['create_time', '创建时间', 'datetime'],
                ['right_button', '操作', 'btn']
            ])
			->addTopButton('add', '', ['area' => ['50%', '80%']]) // 添加授权按钮
            ->addRightButton('edit', '', ['area' => ['50%', '80%']]) // 批量添加右侧按钮
            ->addRightButton('delete') // 批量添加右侧按钮
            ->setRowList($data_list) // 设置表格数据
            ->fetch(); // 渲染页面
    }
	
	/**
     * 新增
     * @author shiqiang
     * @return mixed
     * @throws \think\Exception
     */
    public function add(){   
		// 保存数据
		if ($this->request->isPost()) {
			//数据接收
			$data = $this->request->post('', null, 'trim');
			$store_id   = isset($data['store_id']) ? $data['store_id'] : '';
			$img_url  	= isset($data['img_url']) ? $data['img_url'] : '';
			$type  	    = isset($data['type']) ? $data['type'] : 0;
			$type_id  	= isset($data['type_id']) ? $data['type_id'] : 0;
			$sort  		= isset($data['sort']) ? $data['sort'] : '';
			$banner_status	= isset($data['banner_status']) ? $data['banner_status'] : 0;

			//数据验证
			$Validate = validate('StoreBanner', 'validate');
			if( !$Validate -> scene('store_banner_add') -> check($data) ){
				$this->error($Validate -> getError());
			}

            //图片上传阿里云
            if($img_url != ''  && strpos($img_url,'storebanner/') ==false){
                $rel_logo_pic = get_aliyun_pic_path($img_url,'storebanner/');
                if($rel_logo_pic['code'] != 200) $this->error('图片上传失败');
                $img_url  = $rel_logo_pic['data']['info']['url'];
            }

			$rel = model('ErpStoreBanner') -> addData(1, $img_url, $store_id, $sort,$type,$type_id, $banner_status);//添加

			if($rel['code'] == 200){
				$this->success('新增成功', '', '_parent_reload');
			}else{
				$this->error($rel['message']);
			}

		}
		
		$uid = UID;//后台管理员ID
		$sotre_user = model('app\user\model\User') -> find($uid);//获取列表
		$map = [];
		if($sotre_user['store_uid'] > 0){
			$map['id'] = $sotre_user['store_id'];
		}
		$store_list = model('ErpStore') -> where($map) -> column('id, title');
		if($sotre_user['store_uid'] < 1) $store_list[0] = '全门店通用';
        // 使用ZBuilder快速创建表单
        return ZBuilder::make('form')
            ->setPageTitle('新增轮播图') // 设置页面标题
            ->addFormItems([ // 批量添加表单项
                ['select', 'store_id', '关联门店', '所属上级分类', $store_list, $sotre_user['store_id']],
                ['jcrop_oss', 'img_url', '轮播图片', '', '',],
                ['select', 'type', '分类','',config('banner_type')],
                ['text', 'type_id', '分类关联', '默认0/商品id/分类id/团购商品id'],
				['radio','banner_status', '状态', '', [0 => '不显示', 1 => '显示'], 0]
            ])
            //->addJcrop('img_url', '轮播图片')
			->addText('sort', '排序', '', 100)
            ->fetch();
    }
	
	/**
     * 编辑
     * @author shiqiang <976162041@qq.com>
     * @return mixed
     * @throws \think\Exception
     */
    public function edit($id = ''){   
		if ($id === '') $this->error('缺少参数');
		// 保存数据
		if ($this->request->isPost()) {
			//数据接收
			$data = $this->request->post('', null, 'trim');
			$store_id   = isset($data['store_id']) ? $data['store_id'] : '';
			$img_url  	= isset($data['img_url']) ? $data['img_url'] : '';
            $type  	    = isset($data['type']) ? $data['type'] : 0;
            $type_id  	= isset($data['type_id']) ? $data['type_id'] : 0;
			$sort  		= isset($data['sort']) ? $data['sort'] : '';
			$banner_status	= isset($data['banner_status']) ? $data['banner_status'] : 0;

			//数据验证
			$Validate = validate('StoreBanner', 'validate');
			if( !$Validate -> scene('store_banner_add') -> check($data) ){
				$this->error($Validate -> getError());
			}

            //图片上传阿里云
            if($img_url != ''  && strpos($img_url,'storebanner/') ==false){
                $rel_logo_pic = get_aliyun_pic_path($img_url,'storebanner/');
                if($rel_logo_pic['code'] != 200) $this->error('图片上传失败');
                $img_url  = $rel_logo_pic['data']['info']['url'];
            }

			$rel = model('ErpStoreBanner') -> editData($id , 1, $img_url, $store_id, $sort,$type,$type_id, $banner_status);

			if($rel['code'] == 200){
				$this->success('编辑成功', '', '_parent_reload');
			}else{
				$this->error($rel['message']);
			}
		}
		
		$info = model('ErpStoreBanner', 'model') -> find($id);
		
		$uid = UID;//后台管理员ID
		$sotre_user = model('app\user\model\User') -> find($uid);//获取列表
		$map = [];
		if($sotre_user['store_uid'] > 0){
			$map['id'] = $sotre_user['store_id'];
		}
		
		$store_list = model('ErpStore') -> where($map) -> column('id, title');
		if($sotre_user['store_uid'] < 1) $store_list[0] = '全门店通用';
        // 使用ZBuilder快速创建表单
        return ZBuilder::make('form')
            ->setPageTitle('编辑规格')
             ->addFormItems([ // 批量添加表单项
                 ['select', 'store_id', '关联门店', '所属上级分类', $store_list, $sotre_user['store_id']],
                 ['jcrop_oss', 'img_url', '轮播图片', '', ''],
                 ['select', 'type', '分类','',config('banner_type')],
                 ['text', 'type_id', '分类关联', '默认0/商品id/分类id/团购商品id'],
				 ['radio','banner_status', '状态', '', [0 => '不显示', 1 => '显示'], 0]
             ])
            //->addJcrop('img_url', '轮播图片')
			->addText('sort', '排序', '', 100)
			->setFormData($info)
            ->fetch();
    }
}

